﻿<%@ WebHandler Language="C#" Class="PanasonicWarranty.UI.UpLoad3" %>

using System;
using System.Web;
using System.IO;
using PanasonicWarranty.Business;

namespace PanasonicWarranty.UI
{
    /// <summary>
    /// Summary description for UpLoad
    /// </summary>
    public class UpLoad3 : BaseHandle
    {
        public override void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Expires = -1;
            string filename = "";
            string savepath = "";
            string filepath = "";
            try
            {
                Authorize(Role.Upload);
                pa_Agency agency = pa_Agency.GetByID(CurUser.AgencyID.Value);
                if (agency != null)
                {
                    HttpPostedFile postedFile = context.Request.Files["Filedata"];
                    string tempPath = System.Configuration.ConfigurationManager.AppSettings["FolderPath"];
                    savepath = context.Server.MapPath(tempPath);
                    filename = Guid.NewGuid() + postedFile.FileName;
                    if (!Directory.Exists(savepath))
                        Directory.CreateDirectory(savepath);

                    postedFile.SaveAs(savepath + @"\" + filename);
                    //Insert dữ liệu
                    filepath = Path.Combine(savepath, filename);
                    int rowaffected = pa_WarrantyWaiting.BulkInsert(filepath, agency);
                    //Ghi log tương tác dữ liệu
                    SysChangeLog.Insert(UserID.Value, "Upload dữ liệu đăng ký bảo hành");
                    context.Response.Write("Bạn đã upload thành công " + rowaffected + " dữ liệu");
                    context.Response.StatusCode = 200;
                }
                else
                {
                    throw new CustomException("User chưa nằm ở đại lý nào nên không có quyền import dữ liệu!");
                }
            }
            catch (Exception e)
            {
                SysLog.InsertLog(e);
                context.Response.Write(e.Message);
                context.Response.StatusCode = 200;
            }
            finally
            {
                //Sau khi insert dữ liệu vào db, xóa file đã upload
                if (File.Exists(filepath))
                {
                    File.Delete(filepath);
                }
            }
        }
    }
}
